package cn.com.xy.sms.sdk.util.xml;

 

import java.io.InputStream;

import org.xmlpull.v1.XmlPullParser;

import android.util.Xml;
import cn.com.xy.sms.sdk.Iservice.XyCallBack;

 
public class XmlPullParseUtil {

	/**
	 * 解析获取TAG Name对应的数据
	 * @param instream
	 * @param tagNameData
	 * @param callBack
	 * @throws Throwable
	 */
	public static void parseGainDataByTagName(InputStream instream,String[] tagName,XyCallBack callBack) throws Exception{
	XmlPullParser parser = Xml.newPullParser();//得到Pull解析器
	  parser.setInput(instream, "UTF-8");//设置下输入流的编码
	  int eventType = parser.getEventType();//得到第一个事件类型
	 
	  while (eventType != XmlPullParser.END_DOCUMENT) {//如果事件类型不是文档结束的话则不断处理事件
	   switch (eventType) {
	   case (XmlPullParser.START_DOCUMENT)://如果是文档开始事件
	     
	    break;
	   case (XmlPullParser.START_TAG)://如果遇到标签开始
	    String tag = parser.getName();// 获得解析器当前元素的名称
	      for(String tn:tagName){
	    	  if(tag.equals(tn)){
	    		  callBack.execute(tag,parser.nextText());
	    	  }
	      }
	   break;
	   case (XmlPullParser.END_TAG)://如果遇到标签结束
	    
	   break;
	   }
	   eventType=parser.next();//进入下一个事件处理
	  }
	}
}
